DynamoDB এ ডেটার Consistency Models নির্ধারণ করে যে, যখন ডেটা পরিবর্তিত হবে, তখন এটি কতটুকু দ্রুত সিঙ্ক হবে এবং কবে তা সঠিকভাবে সকল রিড অপারেশনে প্রতিফলিত হবে। DynamoDB দুটি প্রধান কনসিস্টেন্সি মডেল প্রদান করে:
এগুলি একে অপরের থেকে আলাদা, কারণ প্রতিটি মডেল ডেটার উপলব্ধতা এবং লেটেন্সি (দেরি) এর জন্য ভিন্ন আচরণ দেখায়।
Strong Consistency নিশ্চিত করে যে, ডেটার সর্বশেষ অবস্থান সব সময় পাওয়া যাবে, যত তাড়াতাড়ি সম্ভব। এর মানে হল যে, আপনি যখন কোনও ডেটা রিড করবেন, তখন আপনি ডেটার সর্বশেষ পরিবর্তিত বা আপডেট হওয়া অবস্থান পাবেন।
API Call উদাহরণ:
aws dynamodb get-item \
--table-name "MyTable" \
--key '{"UserID": {"S": "user123"}}' \
--consistent-read
এখানে --consistent-read
অপশনটি নিশ্চিত করে যে আপনি একটি strongly consistent রিড করছেন এবং সর্বশেষ ডেটা পাবেন।
Eventual Consistency হল একটি অনুকূলিত কনসিস্টেন্সি মডেল, যেখানে ডেটার সর্বশেষ পরিবর্তন সবার কাছে পৌঁছানোর জন্য কিছু সময় লাগে। অর্থাৎ, যখন আপনি ডেটা রিড করবেন, আপনি সর্বশেষ আপডেট করা ডেটা নাও পেতে পারেন, তবে কিছু সময় পর তা নিশ্চিতভাবে সব জায়গায় পৌঁছে যাবে।
API Call উদাহরণ:
aws dynamodb get-item \
--table-name "MyTable" \
--key '{"UserID": {"S": "user123"}}'
এখানে কোনো --consistent-read
অপশন ব্যবহার করা হয়নি, যার মানে হল যে, এটি eventually consistent read হবে এবং সব সময় সর্বশেষ ডেটা নাও পেতে পারে।
বৈশিষ্ট্য | Strong Consistency | Eventual Consistency |
---|---|---|
Latency | একটু বেশি, কারণ প্রতিটি রেপ্লিকার সাথে আপডেট চেক করা হয়। | কম লেটেন্সি, দ্রুত রিড অপারেশন। |
Data Availability | সর্বশেষ আপডেটেড ডেটা নিশ্চিতভাবে পাওয়া যায়। | কিছু সময়ের জন্য পুরনো ডেটা দেখতে পারেন। |
Use Case | ফাইন্যান্সিয়াল, ট্রানজেকশনাল বা যে কোনও গুরুত্বপূর্ণ অ্যাপ্লিকেশন। | বড় স্কেল অ্যাপ্লিকেশন যেখানে ডেটার সামান্য পরিমাণ ত্রুটি মেনে নেওয়া যায়। |
Consistency Guarantee | সর্বদা সর্বশেষ ডেটা পাওয়া যাবে। | কিছু সময় পর সর্বশেষ ডেটা পাওয়া যাবে। |
DynamoDB এ Eventual Consistency সাধারণত কম খরচে এবং উচ্চ পারফরম্যান্স সরবরাহ করে, তবে যদি Strong Consistency প্রয়োজন হয়, তবে সামান্য বেশি খরচ এবং লেটেন্সি হতে পারে।
আরও দেখুন...